home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 18 Board & Card Games / RACING.BIN (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  6.9 KB  |  233 lines

  1. 1 DIMN$(121),CN$(121),NR(121),WI(121),PL(121),SH(121),HN(121),BT(4,9),C1(121)
  2. 2 DIMR(9),OD(79),PC(79),PS(4,9),RV(79),CR(79)
  3. 3 POKE53280,0:POKE53281,0
  4. 4 PRINT"[147] DO YOU NEED INSTRUCTIONS:":INPUTY$
  5. 5 IFY$="Y"ORY$="YES"THENGOSUB63000
  6. 6 PRINT"WARNING:  IF YOU DO NOT HAVE A HORSES"
  7. 7 PRINT"          FILE ON DISK THIS PROGRAM"
  8. 8 PRINT"          WILL NOT RUN."
  9. 9 GETA$:IFA$=""THENPRINT"HIT ANY KEY[146]":PRINT"[145][145]":GOTO9
  10. 10 GOSUB50000:FORI=1TO4:MY(I)=100:NEXTI
  11. 12 FORI=1TO79
  12. 14 W1=INT(RND(0)*121)+1
  13. 15 IFC1(W1)=1THEN14
  14. 16 C1(W1)=1:HN(I)=W1
  15. 17 NEXTI
  16. 18 R(1)=10:R(2)=17:R(3)=27:R(4)=34:R(5)=41:R(6)=47:R(7)=57:R(8)=69:R(9)=79
  17. 20 FORI=1TO79:OD(I)=INT(RND(0)*30)+1:NEXTI
  18. 24 FORI=1TO79:TW=INT(WI(HN(I))+PL(HN(I))+SH(HN(I)))
  19. 25 IFTW=0THENPC(I)=0:GOTO28
  20. 26 PC(I)=(TW/NR(HN(I))):PC(I)=INT(PC(I)*100)
  21. 28 NEXTI
  22. 50 PRINT"[147]************ HORSE RACING **************"
  23. 51 FORI=1TO500:NEXTI:PRINT"       (A FIZGIG PRODUCTION)"
  24. 52 PRINT:PRINT
  25. 54 PRINT"HOW MANY PLAYERS (4 MAX.)":INPUTHP
  26. 56 IFHP<1ORHP>4THEN54
  27. 58 GOSUB20000
  28. 100 FORI=1TO9
  29. 150 GOSUB10000
  30. 152 FORXX=1TOHP
  31. 154 K=1:GOSUB10000
  32. 156 PRINTPN$(XX)" WHICH HORSE":INPUTBT(XX,I)
  33. 158 IFBT(XX,I)>(N1+R(I))ORBT(XX,I)<N1THEN154
  34. 160 PRINT"WIN,PLACE, OR SHOW (1,2,OR 3)":INPUTPS(XX,I)
  35. 162 IFPS(XX,I)<1ORPS(XX,I)>3THEN160
  36. 164 PRINT"HOW MUCH YOU HAVE"MY(XX)
  37. 167 INPUTWR(XX)
  38. 168 NEXTXX
  39. 200 FORII=1TO4
  40. 202 FORD=R(I-1)+1TOR(I)
  41. 204 RV(D)=RV(D)+INT(RND(0)*100)+1:RV(D)=RV(D)+INT(RND(0)*(PC(D)/20))
  42. 206 CR(D)=INT(R(I)-R(I-1)):NEXTD
  43. 208 FORD=R(I-1)+1TOR(I):FORDD=R(I-1)+1TOR(I)
  44. 210 IFD=DDTHEN214
  45. 212 IFRV(D)=>RV(DD)THENCR(D)=CR(D)-1
  46. 213 IFCR(D)=1THENFR=RV(D)
  47. 214 NEXTDD:NEXTD
  48. 215 FORD=R(I-1)+1TOR(I):RV(D)=INT(FR-RV(D))/10
  49. 216 NEXTD
  50. 217 PRINT"[147]":PRINT"RACE:"I
  51. 218 PRINT" #"TAB(5)"NAME"TAB(20)"BACK"TAB(30)"PLACE"
  52. 220 FORD=R(I-1)+1TOR(I)
  53. 222 PRINTDTAB(3)N$(HN(D))TAB(19)RV(D)TAB(29)CR(D)
  54. 224 NEXTD
  55. 226 GETA$:IFA$=""THEN226
  56. 227 NEXTII
  57. 228 FORD=R(I-1)+1TOR(I)
  58. 230 IFCR(D)=1THENGOSUB400
  59. 232 IFCR(D)=2THENGOSUB410
  60. 234 IFCR(D)=3THENGOSUB420
  61. 235 NEXTD
  62. 236 FORD=1TOHP
  63. 238 IFBT(D,I)=F1THENGOSUB500
  64. 240 IFBT(D,I)=F2THENGOSUB525
  65. 242 IFBT(D,I)=F3THENGOSUB550
  66. 244 NEXTD
  67. 245 PRINT:PRINT
  68. 247 PRINT" #"TAB(10)"WIN"TAB(20)"PLACE"TAB(30)"SHOW"
  69. 248 PRINTF1TAB(9)P1TAB(19)P2TAB(29)P3
  70. 250 PRINTF2TAB(19)P5TAB(29)P6
  71. 252 PRINTF3TAB(29)P9
  72. 254 PRINT
  73. 256 FORD=1TOHP
  74. 257 IFWG(D)=<0THENPRINTPN$(D)" LOST "WR(D):MY(D)=MY(D)-WR(D):GOTO260
  75. 258 PRINTPN$(D)" WON "WG(D):MY(D)=MY(D)+WG(D)
  76. 260 WG(D)=0:NEXTD
  77. 261 GETA$:IFA$=""THENPRINT"HIT ANY KEY TO CONTINUE[146]":PRINT"[145][145]":GOTO261
  78. 262 FORD=R(I-1)+1TOR(I):NR(HN(D))=NR(HN(D))+1:NEXTD:F1=0:F2=0:F3=0
  79. 264 NEXTI
  80. 300 PRINT"[147]"
  81. 301 PRINTTAB(3)"NAME"TAB(19)"WINNINGS"
  82. 302 FORD=1TOHP
  83. 304 PRINTPN$(D)TAB(20)"$"MY(D)
  84. 305 HR(D)=HR(D)+9:NEXTD
  85. 310 GOSUB25000:GOSUB50100
  86. 312 PRINT"DO YOU WANT TO PLAY AGAIN":INPUTY$
  87. 314 IFY$="Y"THENRUN
  88. 316 END
  89. 400 P1=INT(OD(D)*2):P2=INT(P1/2):P3=INT(P2/2):F1=D
  90. 401 WI(HN(D))=WI(HN(D))+1:P1=P1+2:P2=P2+2:P3=P3+2:RETURN
  91. 410 P4=INT(OD(D)*2):P5=INT(P4/2):P6=INT(P5/2):F2=D
  92. 411 PL(HN(D))=PL(HN(D))+1:P5=P5+2:P6=P6+2:RETURN
  93. 420 P7=INT(OD(D)*2):P8=INT(P7/2):P9=INT(P8/2):F3=D
  94. 421 SH(HN(D))=SH(HN(D))+1:P9=P9+2:RETURN
  95. 500 IFPS(D,I)=1THENWG(D)=INT((WR(D)/2)*(P1-2)+WR(D)):RETURN
  96. 502 IFPS(D,I)=2THENWG(D)=INT((WR(D)/2)*(P2-2)+WR(D)):RETURN
  97. 504 IFPS(D,I)=3THENWG(D)=INT((WR(D)/2)*(P3-2)+WR(D)):RETURN
  98. 506 WG(D)=-1:RETURN
  99. 525 IFPS(D,I)=2THENWG(D)=INT((WR(D)/2)*(P5-2)+WR(D)):RETURN
  100. 526 IFPS(D,I)=3THENWG(D)=INT((WR(D)/2)*(P6-2)+WR(D)):RETURN
  101. 528 WG(D)=-1:RETURN
  102. 550 IFPS(D,I)=3THENWG(D)=INT((WR(D)/2)*(P9-2)+WR(D)):RETURN
  103. 552 WG(D)=-1:RETURN
  104. 10000 PRINT"[147]":PRINT"RACE:"I:PRINT" #"TAB(5)"NAME"TAB(30)"ODDS"
  105. 10002 FORII=R(I-1)+1TOR(I)
  106. 10004 PRINTIITAB(3)N$(HN(N1+II))TAB(28)OD(N1+II)"-1"
  107. 10006 NEXTII
  108. 10007 IFK=1THENK=0:RETURN
  109. 10008 PRINT:PRINT"WOULD YOU LIKE TO SEE THE STATS":INPUTY$
  110. 10010 IFY$="Y"THEN10020
  111. 10012 RETURN
  112. 10020 PRINT"[147]":PRINT"RACE:"I:PRINT" #"TAB(5)"NAME";
  113. 10022 PRINTTAB(15)"NR"TAB(20)"W"TAB(25)"P"TAB(30)"S"TAB(35)"PC"
  114. 10024 FORII=R(I-1)+1TOR(I)
  115. 10025 PRINTIITAB(3)CN$(HN(N1+II))TAB(14)NR(HN(N1+II))TAB(19)WI(HN(N1+II));
  116. 10026 PRINTTAB(24)PL(HN(N1+II))TAB(29)SH(HN(N1+II))TAB(33)PC(N1+II)"%"
  117. 10028 NEXTII
  118. 10030 GETA$:IFA$=""THENPRINT"HIT ANY KEY TO CONTINUE[146]":PRINT"[145][145]":GOTO10030
  119. 10032 RETURN
  120. 20000 FORT=1TOHP:PRINT"PLAYER #"T"YOUR NAME":INPUTPN$(T)
  121. 20001 NEXTT:FORT=1TOHP
  122. 20002 PRINTPN$(T)" DO YOU HAVE A RECORD":INPUTRE$
  123. 20004 IFRE$="Y"THEN20100
  124. 20006 NEXTT:GOTO27000
  125. 20100 OPEN2,8,2,"@O:"+PN$(T)+",S,R"
  126. 20102 INPUT#2,HR,MT
  127. 20104 CLOSE2
  128. 20106 HR(T)=HR:MT(T)=MT
  129. 20108 GOTO20006
  130. 25000 FORT=1TOHP
  131. 25002 PN$=PN$(T):HR=HR(T):MT=MT(T)+MY(T)-100
  132. 25010 OPEN2,8,2,"@O:"+PN$(T)+",S,W"
  133. 25014 Z$=CHR$(13)
  134. 25016 PRINT#2,Z$,HR,Z$,MT
  135. 25018 CLOSE2
  136. 25020 NEXTT:RETURN
  137. 27000 PRINT"[147]":PRINT:PRINT
  138. 27001 PRINT"NAME"TAB(15)"RACES"TAB(25)"EARNINGS"
  139. 27002 FORT=1TOHP
  140. 27004 PRINTPN$(T)TAB(16)HR(T)TAB(25)MT(T)
  141. 27006 NEXTT
  142. 27008 GETA$:IFA$=""THENPRINT"HIT ANY KEY TO CONTINUE[146]":PRINT"[145][145]":GOTO27008
  143. 27010 PRINT"[147]":PRINT:PRINT:A$=""
  144. 27012 PRINT"NAME"TAB(15)"AVG/RACE"
  145. 27014 FORT=1TOHP
  146. 27015 IFHR(T)=0THENHR(T)=1
  147. 27016 PRINTPN$(T)TAB(16)INT(MT(T)/HR(T))
  148. 27018 NEXTT
  149. 27019 FORA=1TOHP:IFHR(A)=1THENHR(A)=0
  150. 27020 NEXTA
  151. 27021 GETA$:IFA$=""THENPRINT"HIT ANY KEY TO CONTINUE[146]":PRINT"[145][145]":GOTO27021
  152. 27022 RETURN
  153. 50000 OPEN2,8,2,"HORSES,S,R"
  154. 50002 Z$=CHR$(13)
  155. 50004 FORD=1TO121
  156. 50006 INPUT#2,N$(D),CN$(D),NR(D),WI(D),PL(D),SH(D)
  157. 50008 NEXTD
  158. 50010 CLOSE2:RETURN
  159. 50100 OPEN2,8,2,"@0:HORSES,S,W"
  160. 50102 Z$=CHR$(13)
  161. 50104 FORD=1TO121
  162. 50106 PRINT#2,N$(D);Z$;CN$(D);Z$;NR(D);Z$;WI(D);Z$;PL(D);Z$;SH(D)
  163. 50108 NEXTD
  164. 50110 CLOSE2:RETURN
  165. 63000 PRINT"[147]******  INSTRUCTIONS ******"
  166. 63002 PRINT:PRINT:IFZZ=1THENZZ=0:RETURN
  167. 63004 PRINT"1.  IN ORDER TO PLAY THIS GAME YOU MUST"
  168. 63006 PRINT"    HAVE ALREADY RUN THE CREATOR"
  169. 63008 PRINT"    PROGRAM.  THIS WILL CREATE A FILE"
  170. 63010 PRINT"    OF HORSES ON YOUR DISK."
  171. 63012 PRINT"2.  RUN THIS PROGRAM."
  172. 63014 PRINT"3.  DECIDE ON HOW MANY PLAYERS ARE"
  173. 63016 PRINT"    GOING TO PLAY. (1-4)"
  174. 63018 PRINT"4.  IF YOU DO NOT HAVE A PERSONAL FILE"
  175. 63020 PRINT"    ON YOUR DISK THEN ENTER (N) AND"
  176. 63022 PRINT"    ONE WILL BE CREATED FOR YOU."
  177. 63024 PRINT"    IF YOU DO HAVE ONE THEN HIT (Y)"
  178. 63026 PRINT"5.  YOU WILL THEN BE PRESENTED WITH"
  179. 63028 PRINT"    YOUR PERSONAL RECORD TO DATE."
  180. 63030 PRINT"6.  YOU NOW SEE THE HORSES AND ODDS FOR"
  181. 63032 PRINT"    THE FIRST RACE."
  182. 63034 PRINT"7.  IF YOU WOULD LIKE TO SEE THE HORSES"
  183. 63036 PRINT"    STATS THEN HIT (Y) AND YOU WILL BE"
  184. 63038 PRINT"    PRESENTED WITH HOW MANY RACES EACH"
  185. 63040 PRINT"    HORSE HAS BEEN IN, HOW MANY WINS"
  186. 63042 GETA$:IFA$=""THENPRINT"HIT ANY KEY[146]":PRINT"[145][145]":GOTO63042
  187. 63044 ZZ=1:GOSUB63000
  188. 63046 PRINT"    HOW MANY PLACES, HOW MANY SHOWS,"
  189. 63048 PRINT"    AND WHAT PERCENTAGE OF THE TIME HE"
  190. 63050 PRINT"    IS 'IN THE MONEY'."
  191. 63052 PRINT"8.  NEXT YOU WILL BE ASKED TO BET ON A"
  192. 63054 PRINT"    HORSE. SIMPLY ENTER THE NUMBER YOU"
  193. 63056 PRINT"    WISH TO BET ON."
  194. 63058 PRINT"9.  NOW YOU WILL BE ASKED WETHER YOU"
  195. 63060 PRINT"    WANT HIM TO WIN, PLACE, OR SHOW."
  196. 63062 PRINT"(WIN) A WIN BET MEAN THAT IF YOUR HORSE"
  197. 63064 PRINT"      WINS YOU GET PAYED."
  198. 63066 PRINT"(PLACE) A PLACE BET MEANS THAT IF YOUR"
  199. 63068 PRINT"        HORSE FINISHES FIRST OR SECOND"
  200. 63070 PRINT"        THEN YOU GET PAYED BUT NOT AS"
  201. 63072 PRINT"        MUCH AS A WIN BET."
  202. 63074 PRINT"(SHOW) A SHOW BET MEANS THAT IF YOUR"
  203. 63076 PRINT"       HORSE FINISHES 1,2,OR3 THEN YOU"
  204. 63078 PRINT"       GET PAYED BUT NOT AS MUCH AS"
  205. 63080 PRINT"       WIN OR PLACE BETS."
  206. 63082 GETA$:IFA$=""THENPRINT"HIT ANY KEY[146]":PRINT"[145][145]":GOTO63082
  207. 63084 ZZ=1:GOSUB63000
  208. 63086 PRINT"10. YOU WILL THEN BE ASKED HOW MUCH"
  209. 63088 PRINT"    YOU WANT TO BET.  AT THE BEGINING"
  210. 63090 PRINT"    OF EACH NEW GAME YOU START WITH"
  211. 63092 PRINT"    $100 TO BET. YOU MAY BET AS MUCH AS"
  212. 63094 PRINT"    YOU WANT UP TO $10,000 PER RACE"
  213. 63096 PRINT"    BUT REMEMBER IF YOU LOSE IT GOES ON"
  214. 63098 PRINT"    YOUR RECORD."
  215. 63100 PRINT"11. THE TRACK IS THEN CUT INTO 4"
  216. 63102 PRINT"    SEGMENTS.  A REPORT IS GIVEN TO YOU"
  217. 63104 PRINT"    AT THE END OF EACH SEGMENT.  YOU"
  218. 63106 PRINT"    WILL BE GIVEN IN WHAT PLACE YOUR"
  219. 63108 PRINT"    HORSE IS IN AND HOW MANY LENGTHS"
  220. 63110 PRINT"    HE IS OFF THE LEAD."
  221. 63112 PRINT"    AT THE END OF EACH REPORT JUST HIT"
  222. 63114 PRINT"    ANY KEY."
  223. 63116 PRINT"12. AT THE END OF THE RACE YOU WILL BE"
  224. 63118 PRINT"    GIVEN THE RESULTS AND HOW MUCH YOU"
  225. 63120 PRINT"    WON OR LOST."
  226. 63122 PRINT"    HIT ANY KEY TO GET TO THE NEXT RACE"
  227. 63124 PRINT"13. REPEAT STEPS 6-13 FOR EACH OF THE"
  228. 63126 PRINT"    NINE RACES."
  229. 63128 PRINT"14. AT THE END IF YOU WANT ANOTHER GAME"
  230. 63130 PRINT"    TYPE (Y)"
  231. 63132 GETA$:IFA$=""THENPRINT"HIT ANY KEY[146]":PRINT"[145][145]":GOTO63132
  232. 63134 RETURN
  233.